﻿--.ldf 日志文件
--.mdf 数据文件
--.ndf 次要数据文件

--修改数据库名称
alter database  《数据库名1》
modify name=《数据库名2》
 
 --删除数据库
 drop database 《数据库名》

 --分离数据库
 sp_detach_db 《数据库名》

CREATE TABLE 《表名》   --建表
(
《id 列》  int  identity PRIMARY KEY   ，
《name 列》 VARCHAR(50) NOT NULL unique，
《gender 列》 decimal(3,2)  NOT NULL   
)
 foreign Key 《列名》 /*建立外键 */ references Product《列名》  /*建立主键*/

use 《数据库名》
go
drop table 《表名》  --删除表

alter table 《表名》
ADD 《列名》 VARCHAR(100)  NULL  --新增列

alter table《表名》 drop column 《列名》    --删除列 
     
select * from 《表名》   --查看表
 insert into Table_2 （...,...）values('...','...')  --插入信息
update  《表名》 SET 《列名》='', 《列名》=...， where  《列名》=... ---修改某列的某个数据   
delete from <表名> where   《列名》=...       ----删除某列的数据
 turncate table 《表名》         ---快速删除表中所有数据

 有内连接（INNER JOIN）就有外连接（OUTER JOIN）           
LEFT OUTER JOIN是选出左表存在的记录
 RIGHT OUTER JOIN是选出右表存在的记录：
FULL OUTER JOIN则是选出左右表都存在的记录：

declare @Pageindex int=1,---页数初始值 1
            @PageSize int=4   ---页大小初始值4
 set @Pageindex=1         ---指第1页

count（*）--函数查询  计算该表有多少列
SUM()	 --计算某一列的合计值，该列必须为数值类型
AVG()	---计算某一列的平均值，该列必须为数值类型
MAX()	---计算某一列的最大值
MIN()	---计算某一列的最小值

ALTER TABLE  《表名》 ADD UNIQUE INDEX uni_name (name);    ----通过UNIQUE关键字我们就添加了一个唯一索引。
也可以只对某一列添加一个唯一约束而不创建唯一索引：
ALTER TABLE 《表名》ADD CONSTRAINT uni_name UNIQUE (name);   ---这种情况下，name列没有索引，但仍然具有唯一性保证。

模糊查询：运算符包括（link  %  _  [] ^）
                  % 表示0到多个
                  _ 表示一个字符
                  [] 表示一个连续范围
                  [^ ]  ^写在[]内部的开头 表示不查询[]里的范围



 between   ...and...     ---在两者范围之间包含两者
 <列名> in (<列中的某一数据>,<列中的另某一数据>)      ---只显示（）里对应的那一列的数据
and   /*都要满足*/      or  ---满足一方即可  
order by  <列名>      -- 让此列正序排行
order by  <列名>   Desc     ---让此列倒序排行
group by《列名》       ---  分组查询 表示把该列相同的字符或数值，进行分组
top 《常数》 《列名》     ---表示取该列的前几列  
top  《常数》 percent 《列名》  --表示获取该列的百分之几列
over()        ---通常放在 count（*）、SUM()、	AVG()、	MAX()	、MIN() 等一些函数的后面，表示将该列的值在所有行重复显示	
having      --通常用在 group by 《列名》后 ，表示对上面的函数分组之后再分组，或定义条件
distinct    --去掉重复的行
datediff （day，列名或具体时间，列名列名或具体时间）-- 两个日期列之间的日期差
Ctrl  shift+R   --刷新本地缓存




  
